The branch of computer science that deal with writing computer programs that can solve problems creatively